In modern computer systems, a file system stores and organizes computer files to enable a program to efficiently locate and access requested files. File systems can utilize a storage device such as a hard disk drive to provide local access to data or to utilize a network to provide access to data stored on a remote file server over the network. A file system can also be characterized as a set of abstract data types that are implemented for the storage, hierarchical organization, manipulation, navigation, access, and retrieval of data. The file system software is responsible for organizing files and directories.
Many companies and individuals with large amounts of stored data employ a file system as a data storage system. These data storage systems can be located local to the data to be backed up or at a remote site. The data storage systems can be managed by the entity controlling the data storage devices or a data storage service company. Data can be added to the storage system at any frequency and at any amount.
Data storage systems may offer storage for backup and disaster recovery. Transfer to remote storage may require the transfer of data over a network. A local client data backup application prepares and sends data from the local file system to a backup system. The backup system stores the data received from the local client application to be utilized in the event of a corruption or failure at the computing device executing the local client data backup application.
In some modern computer systems, operating systems have built-in support to create and mount files in a specific format such as the VHDx type files. The VHDx files may be in a container format that contain disk related information and volumes or any file system which the operating system supports on the mounted disk may also be created.
Modern data storage systems create backup images in VHDx container. The backup images are full and incremental backup of a target volume. Full backups contain either all blocks or used blocks of the volume in VHDx and incremental backups contain changed blocks embedded in the VHDx container. To create a full and incremental backup of a target volume, all or only changed blocks of the target volume are copied into a VHDx format. A VHDx stream is created which contains all the VHDx related metadata and the disk metadata such as Master Boot Record (MBR), GUID Partition Table (GPT), and the volume contents on the fly. The VHDx stream is then streamed to the backup medium such as TAPE or DISK targets as a single stream. The resulting save set can then be mounted which will contain the aggregated volume to be recovered. The resulting VHDx file contains only one volume, which makes it easier to chain incremental backups of a particular volume, which will be linked to its parent.
Accordingly, since the respective backup image needs to be mounted on a client device to perform incremental image recovery, the current solution is dependent on having an operating system capable of supporting and mounting the VHDx file. Even when mounting is an option, the current recovery performed from the full and incremental backup of a target volume inefficiently requires reading the blocks from each backup multiple times before copying the blocks.